/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package com.myapp.struts.TablasEquivalencias;

import com.myapp.struts.Materia.Materia;
import java.util.HashMap;
import java.util.LinkedList;
import javax.servlet.http.HttpServletRequest;

import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionMessage;

/**
 *
 * @author Andreina Wilhelm
 */
public class SeleccionarListaMateriasForm extends org.apache.struts.action.ActionForm {

    private String ID_InstOrigen;
    private String ID_InstDestino;
    private String ID_CarreraOrigen;
    private String ID_CarreraDestino;
    private LinkedList<Materia> lista_MateriasOrigen;
    private LinkedList<Materia> lista_MateriasDestino;

    public String getID_InstOrigen() {
        return ID_InstOrigen;
    }

    public void setID_InstOrigen(String ID_InstOrigen) {
        this.ID_InstOrigen = ID_InstOrigen;
    }

    public String getID_InstDestino() {
        return ID_InstDestino;
    }

    public void setID_InstDestino(String ID_InstDestino) {
        this.ID_InstDestino = ID_InstDestino;
    }

    public String getID_CarreraOrigen() {
        return ID_CarreraOrigen;
    }

    public void setID_CarreraOrigen(String ID_CarreraOrigen) {
        this.ID_CarreraOrigen = ID_CarreraOrigen.trim();
    }

    public String getID_CarreraDestino() {
        return ID_CarreraDestino;
    }

    public void setID_CarreraDestino(String ID_CarreraDestino) {
        this.ID_CarreraDestino = ID_CarreraDestino.trim();
    }

    public LinkedList<Materia> getLista_MateriasOrigen() {
        return lista_MateriasOrigen;
    }

    public void setLista_MateriasOrigen(LinkedList<Materia> lista_MateriasOrigen) {
        this.lista_MateriasOrigen = lista_MateriasOrigen;
    }

    public LinkedList<Materia> getLista_MateriasDestino() {
        return lista_MateriasDestino;
    }

    public void setLista_MateriasDestino(LinkedList<Materia> lista_MateriasDestino) {
        this.lista_MateriasDestino = lista_MateriasDestino;
    }

    
    /**
     *
     */
    public SeleccionarListaMateriasForm() {
        super();
        // TODO Auto-generated constructor stub
    }

    
    /**
     * This is the action called from the Struts framework.
     *
     * @param mapping The ActionMapping used to select this instance.
     * @param request The HTTP Request we are processing.
     * @return
     */
    @Override
    public ActionErrors validate(ActionMapping mapping, HttpServletRequest request) {
        ActionErrors errors = new ActionErrors();

        // validar el seleccionado no sea Seleccione...
        if (this.ID_CarreraOrigen.equals("Seleccione...") || this.ID_CarreraDestino.equals("Seleccione...")) {
            errors.add("err_selec", new ActionMessage("errors.select"));    // agrego un error porque sino no agarra camino que deberia pero esto no lo voy a mostrar
        }
        
        // si instituciones son inguales las carreras no lo pueden ser ya que no doy validaciones de materias de una misma carrera de una misma uni
        // uni misma uni pero carreras distinas si
        if(this.ID_InstOrigen.equals(this.ID_InstDestino) && this.ID_CarreraOrigen.equals(this.ID_CarreraDestino))
        {
            errors.add("err_op", new ActionMessage("errors.equivalenciaIncorreta"));  
        }

        return errors;
    }

    
    @Override
    public void reset(ActionMapping mapping, HttpServletRequest request) {
        // reset properties
        this.ID_InstOrigen = "";
        this.ID_InstDestino = "";
        this.ID_CarreraOrigen = "";
        this.ID_CarreraDestino = "";
        this.lista_MateriasOrigen = null;
        this.lista_MateriasDestino = null;
    }
}
